export default {
	/**
	   * 对象拷贝
	   * 示例：
	   * let a = {name:'this is a'}
	   * let b = _copy()
	   */
	IdCodeValid: function (code) {
		//身份证号合法性验证
		//支持15位和18位身份证号
		//支持地址编码、出生日期、校验位验证
		var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "};
		var row={
			'pass':true,
			'msg':'验证成功'
		};
		if(!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$/.test(code)){
			row={
				'pass':false,
				'msg':'身份证号格式错误'
			};
		}else if(!city[code.substr(0,2)]){
			row={
				'pass':false,
				'msg':'身份证号地址编码错误'
			};
		}else{
			//18位身份证需要验证最后一位校验位
			if(code.length == 18){
				code = code.split('');
				//∑(ai×Wi)(mod 11)
				//加权因子
				var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];
				//校验位
				var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];
				var sum = 0;
				var ai = 0;
				var wi = 0;
				for (var i = 0; i < 17; i++)
				{
					ai = code[i];
					wi = factor[i];
					sum += ai * wi;
				}
				if(parity[sum % 11] != code[17].toUpperCase()){
					row={
						'pass':false,
						'msg':'身份证号校验位错误'
					};
				}
			}
		}
		return row;
	},
	/**
	   * 验证手机号码
	   * @param {*} mobile
	   */
	validateMobile: function (mobile) {
		return /^[1][3,4,5,7,8,9][0-9]{9}$/.test(mobile)
	},
	setStorageTo: function (key,data) {
		try {
			uni.setStorageSync(key, data);
		} catch (e) {
			console.log(e)
		}
	},
	getStorageTo: function (name) {
		let data;
		try {
			data = uni.getStorageSync(name);
		} catch (e) {
			console.log(e);
		}
		return data;
	},
	// 获取本月开始时间和结束时间
	timeTo: function (){
		var firstDate = new Date();
		var startTime = firstDate.getFullYear()+"-"+((firstDate.getMonth()+1)<10?"0":"")+(firstDate.getMonth()+1)+"-"+"01";
		
		var date=new Date();
		var currentMonth=date.getMonth();
		var nextMonth=++currentMonth;
		var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
		var oneDay=1000*60*60*24;
		var lastDate = new Date(nextMonthFirstDay-oneDay);
		var endTime = lastDate.getFullYear()+"-"+((lastDate.getMonth()+1)<10?"0":"")+(lastDate.getMonth()+1)+"-"+(lastDate.getDate()<10?"0":"")+lastDate.getDate();
		var timeTo = [startTime,endTime]
		return timeTo
	},
	
	// 隐藏银行卡中间号码
	hideBankCard: function (value){
	  if (value && value.length > 8) {
		return `${value.substring(0, 4)} ${"*".repeat(value.length - 8).replace(/(.{4})/g, `$1 `)}${value.length % 4 ? " " : ""}${value.slice(-4)}`;
	  }
	  return value;
	},
	//秒数转化为时分秒
	timestampToTime(timestamp) {
	  // 时间戳为10位需*1000，时间戳为13位不需乘1000
	  var date = new Date(timestamp * 1000);
	  var Y = date.getFullYear() + "-";
	  var M = (date.getMonth() + 1 < 10? "0" + (date.getMonth() + 1): date.getMonth() + 1) + "-";
	  var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
	  var h = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
	  var m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":";
	  var s = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
	  return  Y + M + D + h + m + s;
	}
}